package org.springblade.modules.repair.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

/**
    * 点检内容历史记录
    */
@Data
@EqualsAndHashCode(callSuper=true)
@TableName(value = "blade_maintain_check_history")
public class MaintainCheckHistory extends TenantEntity {
    /**
     * 电梯id
     */
    @TableField(value = "elevator_id")
    private Long elevatorId;

    /**
     * 计划任务id
     */
    @TableField(value = "plan_id")
    private Long planId;

    /**
     * 模板id
     */
    @TableField(value = "template_id")
    private Long templateId;

    /**
     * 模板名称
     */
    @TableField(value = "template_name")
    private String templateName;

	/**
	 * 模板场景分类id
	 */
	@TableField(value = "template_scene_type_id")
	private Long templateSceneTypeId;

	/**
	 * 模板场景分类名称
	 */
	@TableField(value = "template_scene_type_name")
	private String templateSceneTypeName;

    /**
     * 工作项id
     */
    @TableField(value = "template_content_id")
    private Long templateContentId;

    /**
     * 模板分类id多级逗号隔开
     */
    @TableField(value = "tlt_ids")
    private String tltIds;

    /**
     * 模板分类名称多级逗号隔开
     */
    @TableField(value = "tlt_names")
    private String tltNames;

    /**
     * 维保要求描述
     */
    @TableField(value = "require_desc")
    private String requireDesc;

	/**
	 * 工作项要求图片
	 */
	@TableField(value = "require_img",typeHandler = JacksonTypeHandler.class)
	private List<HashMap<String,Object>> requireImg;

    /**
     * 工作项名称
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 位置分类id
     */
    @TableField(value = "location_type")
    private String locationType;

    /**
     * 位置分类名称
     */
    @TableField(value = "location_type_name")
    private String locationTypeName;

    /**
     * 工作项类型id
     */
    @TableField(value = "plan_type")
    private String planType;

    /**
     * 工作项类型名称
     */
    @TableField(value = "plan_type_name")
    private String planTypeName;

    /**
     * 年检类型id
     */
    @TableField(value = "as_type")
    private String asType;

    /**
     * 年检类型名称
     */
    @TableField(value = "as_type_name")
    private String asTypeName;

    /**
     * 适用梯型id
     */
    @TableField(value = "apply_elevator_type")
    private String applyElevatorType;

    /**
     * 适用梯型名称
     */
    @TableField(value = "apply_elevator_type_name")
    private String applyElevatorTypeName;

    /**
     * 工作项状态 1-正确 2-错误 3-无此项
     */
    @TableField(value = "`result`",updateStrategy = FieldStrategy.IGNORED)
    private Integer result;

    /**
     * 记录数据
     */
    @TableField(value = "record_data",typeHandler = JacksonTypeHandler.class)
    private JSONObject recordData;

	/**
	 * 对应工作项操作记录
	 */
	@TableField(exist = false)
	private List<MaintainCheckRecord> checkRecords;

	/**
	 * 工作项问题记录id
	 */
	@TableField(exist = false)
	private Long byScoreQuestionId;
}
